//是否有有效值
export function isValue(value) {
	return value.replace(/\s+/g, '') || '';
}

//将url中的参数转对象
export function queryStringToObject(str) {
	// 先用slice截取?号后面的参数,然后用split按&进行分割为数组
	let str2 = str.slice(1).split("&")
	let obj = {}
	for (let i = 0; i < str2.length; i++) {
		// 去除键值对之间的"="
		let res = str2[i].split("=")
		// 对新变量进行赋值
		obj[res[0]] = res[1]
	}
	return obj
}
export function isValidPhoneNumber(phoneNumber) {
    // 中国大陆手机号码正则表达式
    const regex = /^1[3-9]\d{9}$/;
    return regex.test(phoneNumber);
}


// 获取指定字符后的所有字符串
export function getStringAfterChar(str, charToFind) {
	const parts = str.split(charToFind);
	return parts.length > 1 ? parts.slice(1).join(charToFind) : '';
}

// 价格转换 500转为5.00
export function priceConversion(price) {
	return (price / 100).toFixed(2)
}

//页面跳转获取事件通道并监听事件
export function getJumpData(type, funcName, callBack) {
	const chenal = this.getOpenerEventChannel()
	chenal[type] && chenal[type](funcName, callBack)
}

// 封装防抖
export function debounce(callback, time = 300) {
	console.log('防抖')
	var d = null;
	return function() {
		if (d != null) clearTimeout(d);
		var _this = this;
		var _event = arguments;
		d = setTimeout(function() {
			// 有回调函数，改变this指向，传递事件对象给callback
			callback && callback.apply(_this, _event)
			// 释放变量
			d = null;
		}, time)
	};
}

// 封装节流
export function throttle(callback, time = 300) {
	console.log('节流')
	var isShow = false;
	// 返回函数
	return function() {
		if (isShow) {
			return;
		} else {
			isShow = true;
			// 记录当前的this
			var _this = this;
			// 事件对象
			var arg = arguments;
			setTimeout(function() {
				// setTimeout里的this是window
				if (callback) callback.apply(_this, arg);
				isShow = false;
			}, time);
		}
	};
}

/*
 *唤起跳转微信小程序
 *miniId 小程序id
 *miniPath 小程序页面路径
 */
export function openMiniProgram(miniId, miniPath) {
	// #ifdef APP
	//获取终端支持的分享通道列表
	plus.share.getServices(function(s) {
		let sweixin = null;
		for (let i = 0; i < s.length; i++) {
			if (s[i].id == 'weixin') {
				sweixin = s[i];
			}
		}
		//判断是否有微信
		if (sweixin) {
			console.log(s)
			console.log('调起小程序')
			//唤起微信跳转小程序
			sweixin.launchMiniProgram({
				id: miniId,
				path: miniPath
			}, function() {
				return true;
			}, function(e) {
				console.log("微信唤起失败", e);
				uni.showToast({
					title: '微信唤起失败，请检查是否有微信应用',
					icon: 'none'
				})
				return false;
			})
		} else {
			uni.showToast({
				title: '微信唤起失败，请检查是否有微信应用',
				icon: 'none',
				duration: 3000
			})
			return false;
		}
	}, function(e) {
		console.log("微信唤起失败", e);
		uni.showToast({
			title: '微信唤起失败，请重试',
			icon: 'none',
			duration: 3000
		})
		return false;
	});
	// #endif
	// #ifdef MP-BAIDU || MP-TOUTIAO || MP-WEIXIN || MP-ALIPAY || MP-QQ
	uni.navigateToMiniProgram({
		appId: miniId,
		path: miniPath,
		success(res) {
			return true
		},
		fail(res) {
			uni.showToast({
				title: '跳转小程序失败',
				icon: 'none',
				duration: 3000
			})
			console.log('跳转小程序失败', res)
			return false;
		}
	})
	// #endif
	// #ifdef H5
	uni.request({
		url: `https://tool.gkzzd.cn/index/index/getAccessTokenForJump`,
		method: 'POST',
		data: {
			path: miniPath.split('?')[0],
			query: miniPath.split('?')[1] || '', // 短链的入参 例如:'a=1&b=2'
		},
		success(result) {
			console.log('生成网址：', result.data.data.url_link);
			window.location.href = result.data.data.url_link
		},
		fail(err) {
			console.log(err);
		}
	})
	// #endif
}

export function isWeChatBrowser() {
	// #ifdef H5
	var ua = window.navigator.userAgent.toLowerCase();
	if (ua.match(/micromessenger/i) == 'micromessenger') {
		//console.log('是微信客户端')  
		return true;
	} else {
		//console.log('不是微信客户端')  
		return false;
	}
	// #endif
	// #ifndef H5
	return false;
	// #endif
}

//截取地址中的参数
export function getUrlParams() {
	// 截取url中的code方法
	var url = location.search;
	var theRequest = new Object();
	if (url.indexOf("?") != -1) {
		var str = url.substr(1);
		var strs = str.split("&");
		for (var i = 0; i < strs.length; i++) {
			theRequest[strs[i].split("=")[0]] = strs[i].split("=")[1];
		}
	}
	return theRequest;
}